Analisis

En esta hoja de trabajo se generaran dos modelos de redes neuronales que sean capaces de clasificar usando la variable de respuesta que categoriza las casas en baratas, medias y caras. Estos modelos tendran diferentes topologias y funciones de activacion. Estos modelos se utilizaran para predecir la variable de respuesta. Asimismo, se realizaran las matrices de confucion y se compararan los resultados. Seguido de esto, se realizara el mismo proceso pero para la variable SalesPrice, de manera que el algoritmo prediga el precio de las casas.

Inicialmente se separan los datos cuantitativos. En base a las hojas realizadas anteriormente, se decidio por descartar las variables que tienen mucha correlacion entre si y asi facilitar la creacion de los modelos.

Variable de Respuesta “tipoDeCasa”

Red Neuronal con caret

A continuacion se muestra el modelo generado con caret:

## Neural Network 
## 
## 1005 samples
##   37 predictor
## 
## Pre-processing: scaled (37), centered (37) 
## Resampling: Bootstrapped (25 reps) 
## Summary of sample sizes: 1005, 1005, 1005, 1005, 1005, 1005, ... 
## Resampling results across tuning parameters:
## 
##   size  decay  RMSE       Rsquared   MAE      
##   1     0e+00  0.2900616  0.8661209  0.2131192
##   1     1e-04  0.2712488  0.8852121  0.2007247
##   1     1e-01  0.2702672  0.8856105  0.2037176
##   3     0e+00  0.3275482  0.8354253  0.1280640
##   3     1e-04  0.3627589  0.8064277  0.1649435
##   3     1e-01  0.2688875  0.8872097  0.1707850
##   5     0e+00  0.4225275  0.7703499  0.1786598
##   5     1e-04  0.3573536  0.8131785  0.1669553
##   5     1e-01  0.3065245  0.8553780  0.2046365
## 
## RMSE was used to select the optimal model using the smallest value.
## The final values used for the model were size = 3 and decay = 0.1.

Para generar el modelo se aplico el parametro de preProcess. Este nos ayudo a centrar y escalar la data. Es decir, se normalizaron todas las columnas y sus registros para que no haya disparidad en el entrenamiento del modelo y en las predicciones.

Seguido de esto vemos la prediccion y su matriz de confusion:

## Confusion Matrix and Statistics
## 
##    
##       2   3   1
##   2 134  11   8
##   3   7 112   0
##   1   9   0 150
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9188          
##                  95% CI : (0.8889, 0.9428)
##     No Information Rate : 0.3666          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.8774          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 2 Class: 3 Class: 1
## Sensitivity            0.8933   0.9106   0.9494
## Specificity            0.9324   0.9773   0.9670
## Pos Pred Value         0.8758   0.9412   0.9434
## Neg Pred Value         0.9424   0.9647   0.9706
## Prevalence             0.3480   0.2854   0.3666
## Detection Rate         0.3109   0.2599   0.3480
## Detection Prevalence   0.3550   0.2761   0.3689
## Balanced Accuracy      0.9129   0.9439   0.9582

Tiempo de ejecucion:

##    user  system elapsed 
##       0       0       0

Dado que el algoritmo retornaba valores entre 0 y 3 debimos redondear estos numeros para que calleran dentro de una de nuestras clasificaciones de tipo de casa (1, 2, 3).

Red Neuronal con NNet

A continuacion se muestra el modelo generado con NNet, en donde se realizo un entrenamiento con un maximo de 300 iteraciones:

## # weights:  976
## initial  value 5003.405243 
## iter  10 value 640.282903
## iter  20 value 639.380869
## iter  30 value 639.058012
## final  value 639.046340 
## converged

Tiempo de ejecucion:

##    user  system elapsed 
##       0       0       0

Es importante recalcar que se realizaron unicamente 300 iteraciones, dado que de realizarse mas se podria caer en overfiting, y no se desea eso.

Seguido de esto vemos la prediccion y su matriz de confusion:

## Confusion Matrix and Statistics
## 
##    
##       2   3   1
##   2 150 122 158
##   3   0   1   0
##   1   0   0   0
## 
## Overall Statistics
##                                           
##                Accuracy : 0.3503          
##                  95% CI : (0.3053, 0.3975)
##     No Information Rate : 0.3666          
##     P-Value [Acc > NIR] : 0.7727          
##                                           
##                   Kappa : 0.0038          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 2 Class: 3 Class: 1
## Sensitivity          1.000000  0.00813   0.0000
## Specificity          0.003559  1.00000   1.0000
## Pos Pred Value       0.348837  1.00000      NaN
## Neg Pred Value       1.000000  0.71628   0.6334
## Prevalence           0.348028  0.28538   0.3666
## Detection Rate       0.348028  0.00232   0.0000
## Detection Prevalence 0.997680  0.00232   0.0000
## Balanced Accuracy    0.501779  0.50407   0.5000

Comparacion de Resultados con otros modelos de clasificacion

Matríz de confusión Naive Bayes

Matríz de confusión Regression Lineal

Matríz de confusión Arbol de Clasificación

Matríz de confusión SVM

  • Modelos Lineales
  • Modelos Radiales
  • Modelos Polinomiales

Debajo tenemos una grafica comparativa del Accuracy obtenido de los modelos utilizados para las predicciones:

Variable de Respuesta “SalePrice”

Red Neuronal con NNet

Al predecir el valor de SalePrice nos vemos con otro nivel de dificultad, ya que debemos hacer una prediccion de multiples valores discretos. Para ello optamos por normalizar la data mediante el metodo de normalizacion Min-Max. Este metodo de normalizacion convierte cada valor en un rango entre 0 y 1. Para ello se aplica la siguiente formula: x’=(x-min(x))/(max(x)-min(x)). Luego de entrenar el modelo con la data normalizada se tuvo que desnormalizar para luego calcular el porcentage de error de cada prediccion. El porcentage de error se obtuvo de la siguiente manera: (|aprox-real|/real)*100.

Finalmente se hizo un promedio de todos los porcentajes de error restados de 1 para obtener la precision de nuestro modelo.

A continuacion vemos el accuracy promedio de las predicciones de SalePrice con NNet:

## [1] 91.40342

Discucion

Al comparar los resultados obtenidos con los diferentes modelos de clasificacion usando redes neuronales para estimar la variable de respuesta “tipoDeCasa” podemos ver que las redes neuronales realizadas por la librería de Caret fueron las más efectivas con un 85.85% de precision y con una diferencia de 0.24% respecto a las formas por la librería NNet con una presicion de 85.61%. No se puede determinar qué modelo es el mejor, pero sí qué modelo nos dio mejores resultados, y fue el modelo de redes neuronales con Caret.

Siendo este el modelo más efectivo, ahora partiendo del tiempo de ejecución podemos decir que de la librería Caret fue el más efectivo comparado con la otra librería de redes neuronales que fue bastante más complicado de efectuar y acomodar el modelo para poder hacerlo funcionar.

Ahora si hablamos de tiempo de ejecución podemos determinar que efectivamente la re neuronales realizadas con Caret fueron bastante más tardar que a las algoritmos como por ejemplo Naive valles y regresé logística sin embargo fue mucho más efectiva que las dos anteriores.

Aunque también se puede resaltar que ningún algoritmo tuvo una efectividad baja o menor al 70% dentro de todos los algoritmos utilizados únicamente las redes neuronales fueron mucho más efectivas paralizar la televisión sin embargo ninguno tuvo efectividad baja.

En este caso el algoritmo recargar recargar como el “el menos efectivo“ sería la regresión lineal, puede que esto se deba a que no es ideal para la predicción, sin embargo fue muy efectivo.